package sistkaraoke.negocio;

import java.util.Collection;

import sistkaraoke.modelo.IDetalleComprobante;
import sistkaraoke.dao.ComprobanteDAO;
import sistkaraoke.dao.IComprobanteDAO;
import sistkaraoke.dao.ISalaDAO;
import sistkaraoke.dao.SalaDAO;
import sistkaraoke.excepcion.DAOExcepcion;
import sistkaraoke.modelo.Administrador;
import sistkaraoke.modelo.Boleta;
import sistkaraoke.modelo.Cliente;
import sistkaraoke.modelo.Factura;
import sistkaraoke.modelo.IAdministrador;
import sistkaraoke.modelo.IBoleta;
import sistkaraoke.modelo.ICajero;
import sistkaraoke.modelo.Cajero;
import sistkaraoke.modelo.ICliente;
import sistkaraoke.modelo.IFactura;
import sistkaraoke.modelo.ILocal;
import sistkaraoke.modelo.IPedido;
import sistkaraoke.modelo.ISala;
import sistkaraoke.modelo.Local;
import sistkaraoke.modelo.Sala;

public class GestionComprobante implements IGestionComprobante {

	public void generarBoleta(int idCajero, int idCliente, String numeroBoleta, 
			Collection<IDetalleComprobante> detalles) throws DAOExcepcion {

		IComprobanteDAO dao = new ComprobanteDAO();
		IBoleta b = new Boleta();
		
		ICajero oCajero = new Cajero();
		oCajero.setId(idCajero);
		b.setCajero(oCajero);
		
		ICliente ocliente = new Cliente();
		ocliente.setIdcliente(idCliente);
		b.setCliente(ocliente);
		
		b.setNumeroBoleta(numeroBoleta);				
		b.setDetComprobantes(detalles);
		
		try {
			dao.insertarBoleta(b);
		} catch (DAOExcepcion e) {
			throw e;
		}
	}
	
	public void generarFactura(int idCajero, int idCliente, String numeroFactura,
			String ruc, Collection<IDetalleComprobante> detalles) throws DAOExcepcion {

		IComprobanteDAO dao = new ComprobanteDAO();
		IFactura f = new Factura();
		
		ICajero oCajero = new Cajero();
		oCajero.setId(idCajero);
		f.setCajero(oCajero);
		
		ICliente ocliente = new Cliente();
		ocliente.setIdcliente(idCliente);
		f.setCliente(ocliente);
		
		f.setNumeroFactura(numeroFactura);		
		f.setRuc(ruc);
		f.setDetComprobantes(detalles);
		
		try {
			dao.insertarFactura(f);
		} catch (DAOExcepcion e) {
			throw e;
		}
	}
	
	public Collection<IPedido> ListarPedidos() throws DAOExcepcion {
	
		IComprobanteDAO dao = new ComprobanteDAO();				
		return dao.ListarPedidos();
	}
}
